Problem
Time limit : 2sec / Memory limit : 256MB
题意简述:
有$n$个方块排成一行,从左到右编号为$1$到$n$。最初所有的方块都是白色的。我们还有$N-1$台涂漆机,编号为$1$至$N-1$。当操作时,第$i$号机器把第$i$和$i+1$号方块染黑。
Snuke将逐个操作这些机器。他操作它们的顺序是$(1,2,…,N-1)$的一个排列$P$,这意味着第$i$个操作的机器是机器$P_i$。
排列$P$的得分被定义为当机器以$P$指定的顺序操作时,在所有方块第一次被涂成黑色之前操作的机器的数量。找出他所有可能排列的得分总和。因为这可能非常大,计算模$10^9+7$。
Solution
题目可以转化为求 $\displaystyle \sum_{i = 0}^{N - 2} T(i)$
其中$T(i)$表示用了$i$次操作没有全部染黑的方案数
首先我们有$T(0) = (N - 1)!$
然后分类讨论,一个是因为没用$N-1$而没有全部染黑的方案数是$\displaystyle \binom{N - 2}{i}i!$
如果用了$N - 1$,那么方案是$\displaystyle \left (\binom{N - 2}{i - 1} - W(i - 1) \right )i!$
$W(i)$表示用了一个$N - 1$号机器和其他$i$个机器,把所有方格染黑了的方案数
显然序列里会有$1$
把序列差分一下,会发现这个序列不是$1$就是$2$,也就是一堆$1$和一堆$2$的数目固定,一堆$1$和一堆$2$的和是$N - 2$,这是个二元一次方程,然后求出了$1$的个数和$2$的个数,就是个带重复元素的全排列,答案是 $\displaystyle\frac {(\text{num}_1 + \text{num}_2)! }{\text{num}_1 ! \text{num}_2 !}$
由于其他$N - 1 - i$台机器随意排列,最后还要乘上$(N - i - 1)!$
Code:
1 |
|